1. Field of the Invention
This invention relates to a DMA (Direct Memory Access) control device and to a recording apparatus which transfers recording information using that device. More specifically, this invention relates to a recording apparatus which can perform DMA transfer within a predetermined time, when the recording apparatus has plural DMA circuits.
2. Description of Related Art
Recently, as personal computers, computer graphics and CAD (Computer Aided Design) have become more and more widely used, ever more rigorous demands have been made on printers. As a recording method, printers use various systems such as laser beam electrophotography, static photographic systems, lithographic recording, heat transfer recording, wire dot recording and inkjet recording.
Printing speeds become much higher year by year by means of improvements in the speed of processors, optimization of software algorithms and so on.
However, further improvements in printing speed are desirable, since burdensome processes such as a proportional font process of such as outline font or vector font are now more likely to be carried out by the printer than by the processor. In responding to this need, printer makers trying to improve printing speed have been concentrating on the hardware processes instead of on the software processes, which continue to be performed conventionally.
As an example, a DMA process during printing in a serial printer is given. This is a method that improves the processing speed so as to reduce the burden of software by directly accessing outside memory (e.g., buffer memory, or print memory) by an ASIC (Application Specific IC), etc., not through the CPU. The general control of such a DMA process will be explained referring to FIG. 5.
In FIG. 5, reference numeral 11 is a heat pulse generating section which generates a heat pulse that heats a recording head 16 at a predetermined timing corresponding to movement of the head 16. Reference numeral 12 is a heat control section which controls a head drive circuit 15 that receives the heat pulse from the heat pulse generating section 11 and drives the recording head 16. Reference numeral 13 is a RAM where actual printing data is stored successively in order; usually the RAM 13 stores the data in the order of the heat row heating. Reference numeral 14 is a DMA control section which reads the next heat data from the RAM 13 according to a control signal from the heat control section 12 and stores the read data in an inside register of heat control section 12. The head drive circuit drives the actual printing based on the heat data stored in the inner register of the heat control section 12 according to a control signal from the heat control section 12. The recording head 16 performs recording in response to a heat pulse (that is, the heat pulse produces the heating that results in ejection of the ink). Reference numeral 17 is a carriage which reciprocates the head 16 across the recording medium being printed on. Reference numeral 18 is a scanning section which controls this scanning movement of the carriage 17 in the main scanning direction (across the width of the recording medium, ordinarily).
Operation during printing will be explained for this circuit structure. When the carriage 17 carrying the head 16 begins a scan under control of the scanning section 18, the heat pulse generating section 11 initiates operation of an inner counter. The heat pulse generating section 11 sends the heat pulse to the heat control section 12, when it judges head 16 on carriage 17 has reached a heat start position (the position of the head may be tracked, for example, by incrementing or decrementing a counter as the head 16 moves). The heat control section 12 sends a DMA start signal to the DMA control section 14 upon receiving the heat pulse from the heat pulse generating section 11.
The DMA control section 14 reads out the heat data stored in RAM 13, stores the read-out heat data in the register inside the heat control section 12 and then increments the value of the pointer which indicates the address or location of heat data in RAM 13 to the location of the next heat data upon receiving each DMA start signal from the heat control section 12.
If heat data is stored in the inner register under control of the DMA control section 14, the heat control section 12 will output the heat start signal to the head drive circuit 15. The head drive circuit 15 actuates the printing mechanism of the head (e.g., ink ejection) at the proper times to print the heat data stored in the inner register of the heat control section 12, when it receives the heat start signal from the heat control section 12. The first dot is printed by means of this operation.
The heat pulse generating section 11 continues to operate the inner counter after generating the heat pulse for the first dot. The heat pulse generating section 11 generates a second heat pulse when the heat pulse generating section 11 judges that the carriage has reached the heat position for the second dot to be printed, based on the value in the counter, and the second dot is printed by a heat pulse in the same way. One line is printed by repetition of this operation.
In the foregoing explanation, an example of DMA control between the heat control section 12 and the memory (RAM 13) has been given. The DMA is not seldom used in refreshing control where a DRAM is used as a memory, for reception and transmission control in an interface, and so on. It is general to provide a DMA priority circuit in an apparatus which has plural DMA functions in this way to process DMA demands in an order determined by priority.
One conventional example of a priority decisional method used in such cases will now be explained. For example, it is usual that the priority of DMA control for heat control is high while that of DMA control for an interface is low, in a printing apparatus which performs both of these types of DMA control. For this reason, the following problem will occur if the priority of DMA control for the interface is set higher than the priority of DMA control for the heat control: If the printing apparatus is connected with a host that has a high-speed interface, DMA will be monopolized by interface receiving, and since reading out of the recording information by DMA in the heat control process requires a certain amount of time and thus is likely to be interfered with by the interface-related DMA, recording mistakes will occur.
Accordingly, since the priority of DMA for heat control is high and the priority of DMA for the interface is set low, when DMA demands crowd in on each other in rapid succession due to the demands of the heat control and so on, the host is controlled to wait, through negotiation with the interface.
To facilitate explanation of the problems encountered in the above-mentioned conventional technique, the Centronics.RTM. interface which is in general use as a parallel interface of a printer, will be mentioned as an example. Recently, interface standard IEEEP1284 (it will be simply called hereinafter "bidirectional Centronics"), which aims at bidirectionalizing a Centronics interface was announced. In the bidirectional Centronics standard, a maximum value "Max" of the response time within which a peripheral equipment must respond to a specific demand from a host is defined.
As mentioned above, in an interface where the Max value of response time is defined, when DMA demands are competing in a conventional DMA system using a conventional priority structure of DMA control, it happens that the host cannot respond within the time defined in the above-mentioned standard. On the other hand, if the priority of the DMA interface were raised in order to be able to respond within the time defined in the standard, the host computer, if it has a high-speed interface would hinder DMA of the heat control.
Therefore, the conventional DMA structure has been unable to support bidirectional Centronics standard perfectly, irrespective of priority structure.